package com.ww.design.pattern.decorator.model;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

public class ScheduleDetailDTO implements Serializable {

    private Integer scheduleDetailId;
    private String accountNo;           //贷款账号
    private Integer stageNo;             //阶段号
    private Integer instalNo;           //分期序号
    private Date instalStart;             //本期开始时间
    private Date instalEnd;               //本期应还时间
    private BigDecimal totalAmt;           //应归还总金额
    private BigDecimal princAmt;            //应归还本金
    private BigDecimal interestAmt;         //应归还利息
    private BigDecimal guaranteeAmt;        //应归还担保费
    private BigDecimal penaltyInterestAmt;         //应归还罚息
    private BigDecimal unclearedAmt;       //本期未结清金额
    private BigDecimal lastUnclearedAmt;   //上期未结清金额
    private BigDecimal feeAmt;            //其它费用
    private Date repayDate;               //结清日期
    private BigDecimal repayAmt;          //结清金额
    private Integer status;              //状态，1本期未到期，2结息 待还款，4已结清，8已转新
    private Date batchDate;             //上次批处理时间(结息、罚息批处理)
    private String createUser;
    private String modifyUser;

    private BigDecimal arrearsA;         //欠款罚息
    private BigDecimal arrearsX;         //欠款复利
    private BigDecimal arrearsF;         //欠款提前结清违约金
    private BigDecimal arrearsC;         //欠款本金
    private BigDecimal arrearsI;         //欠款利息
    private BigDecimal arrearsG;         //欠款资方担保费
    private BigDecimal arrearsH;         //欠款资方担保罚息
    private BigDecimal arrearsJ;         //欠款担保咨询费
    private BigDecimal arrearsS;         //欠款罚金
    private BigDecimal arrearsTotal;     //总欠款金额

    private BigDecimal arrearsDueC;         //实际欠款本金
    private BigDecimal arrearsDueI;         //实际欠款利息
    private BigDecimal arrearsDueA;         //实际欠款罚息
    private BigDecimal arrearsDueX;         //实际欠款复利
    private BigDecimal arrearsDueF;         //实际欠款费用
    private BigDecimal arrearsDueS;         //实际欠款罚金
    private BigDecimal arrearsDueG;         //实际欠款费用
    private BigDecimal arrearsDueJ;         //实际欠款费用
    private BigDecimal arrearsDueH;         //实际欠款罚金
    private BigDecimal arrearsDueTotal;        //未还欠款总金额

    private BigDecimal paymentC;         //实际已还本金
    private BigDecimal paymentI;         //实际已还利息
    private BigDecimal paymentA;         //实际已还罚息
    private BigDecimal paymentX;         //实际已还复利
    private BigDecimal paymentF;         //实际已还提前结清违约金
    private BigDecimal paymentS;         //实际已还罚金
    private BigDecimal paymentG;         //实际已还资方担保费
    private BigDecimal paymentH;         //实际已还资方担保罚息
    private BigDecimal paymentJ;         //实际已还担保咨询费

    private BigDecimal actualRepaymentAmt;  //实际已还金额

    private BigDecimal remitAmt;           //减免金额
    private BigDecimal remitAmtA;           //减免罚息金额
    private BigDecimal remitAmtF;           //减免提前结清违约金金额
    private BigDecimal remitAmtG;           //减免资方担保金额
    private BigDecimal remitAmtH;           //减免资方担保罚息金额
    private BigDecimal remitAmtI;           //减免利息金额
    private BigDecimal remitAmtJ;           //减免担保咨询费金额
    private BigDecimal remitAmtS;           //减免罚金金额
    private BigDecimal remitAmtX;           //减免复利金额

    private Integer overdueDay;             //逾期天数


    private BigDecimal interestDiscountAmt; //利息优惠金额

    private String updateSrlno;

    private Date actualRepaymentTime;

    public BigDecimal unacctRepayAmt; //未入账还款金额


    // 是否代偿 0：正常 1：应代偿 2：已代偿
    private Integer isCompensated;

    // 是否回购 0：正常 1：应回购 2：已回购
    private Integer isBuyBack;

    //收款方:  TIANYIHE LVXIN
    private String payee;

    //代偿时间
    private Date compensatoryTime;

    // 回购时间
    private Date buyBackTime;

    // 剩余本金
    private BigDecimal remainPrin;

    // 更新时间
    private Date datModify;

    private BigDecimal actualShouldPrincAmt; // 实际应还本金

    private BigDecimal actualShouldInterestAmt; // 实际应归还利息

    private BigDecimal actualShouldGuaranteeAmt; // 实际应归还资方担保费

    private BigDecimal xxyGuaranteeAmt; // 小薪意计划应归还担保咨询费

    private BigDecimal actualShouldXxyGuaranteeAmt; // 实际应归还小薪意担保咨询费

    private BigDecimal pureInterestAmt; // 计划应归还纯利息

    private BigDecimal actualShouldPureInterestAmt; // 实际应归还纯利息

    public BigDecimal getRemainPrin() {
        return remainPrin;
    }

    public void setRemainPrin(BigDecimal remainPrin) {
        this.remainPrin = remainPrin;
    }

    public BigDecimal getPenaltyInterestAmt() {
        return penaltyInterestAmt;
    }

    public void setPenaltyInterestAmt(BigDecimal penaltyInterestAmt) {
        this.penaltyInterestAmt = penaltyInterestAmt;
    }

    public Integer getScheduleDetailId() {
        return scheduleDetailId;
    }

    public void setScheduleDetailId(Integer scheduleDetailId) {
        this.scheduleDetailId = scheduleDetailId;
    }

    public String getAccountNo() {
        return accountNo;
    }

    public void setAccountNo(String accountNo) {
        this.accountNo = accountNo;
    }

    public Integer getStageNo() {
        return stageNo;
    }

    public void setStageNo(Integer stageNo) {
        this.stageNo = stageNo;
    }

    public Integer getInstalNo() {
        return instalNo;
    }

    public void setInstalNo(Integer instalNo) {
        this.instalNo = instalNo;
    }

    public Date getInstalStart() {
        return instalStart;
    }

    public void setInstalStart(Date instalStart) {
        this.instalStart = instalStart;
    }

    public Date getInstalEnd() {
        return instalEnd;
    }

    public void setInstalEnd(Date instalEnd) {
        this.instalEnd = instalEnd;
    }

    public BigDecimal getTotalAmt() {
        return totalAmt;
    }

    public void setTotalAmt(BigDecimal totalAmt) {
        this.totalAmt = totalAmt;
    }

    public BigDecimal getPrincAmt() {
        return princAmt;
    }

    public void setPrincAmt(BigDecimal princAmt) {
        this.princAmt = princAmt;
    }

    public BigDecimal getInterestAmt() {
        return interestAmt;
    }

    public void setInterestAmt(BigDecimal interestAmt) {
        this.interestAmt = interestAmt;
    }

    public BigDecimal getUnclearedAmt() {
        return unclearedAmt;
    }

    public void setUnclearedAmt(BigDecimal unclearedAmt) {
        this.unclearedAmt = unclearedAmt;
    }

    public BigDecimal getLastUnclearedAmt() {
        return lastUnclearedAmt;
    }

    public void setLastUnclearedAmt(BigDecimal lastUnclearedAmt) {
        this.lastUnclearedAmt = lastUnclearedAmt;
    }

    public BigDecimal getFeeAmt() {
        return feeAmt;
    }

    public void setFeeAmt(BigDecimal feeAmt) {
        this.feeAmt = feeAmt;
    }

    public Date getRepayDate() {
        return repayDate;
    }

    public void setRepayDate(Date repayDate) {
        this.repayDate = repayDate;
    }

    public BigDecimal getRepayAmt() {
        return repayAmt;
    }

    public void setRepayAmt(BigDecimal repayAmt) {
        this.repayAmt = repayAmt;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Date getBatchDate() {
        return batchDate;
    }

    public void setBatchDate(Date batchDate) {
        this.batchDate = batchDate;
    }

    public String getCreateUser() {
        return createUser;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    public String getModifyUser() {
        return modifyUser;
    }

    public void setModifyUser(String modifyUser) {
        this.modifyUser = modifyUser;
    }

    public BigDecimal getArrearsA() {
        return arrearsA;
    }

    public void setArrearsA(BigDecimal arrearsA) {
        this.arrearsA = arrearsA;
    }

    public BigDecimal getArrearsX() {
        return arrearsX;
    }

    public void setArrearsX(BigDecimal arrearsX) {
        this.arrearsX = arrearsX;
    }

    public BigDecimal getArrearsF() {
        return arrearsF;
    }

    public void setArrearsF(BigDecimal arrearsF) {
        this.arrearsF = arrearsF;
    }

    public BigDecimal getArrearsTotal() {
        return arrearsTotal;
    }

    public void setArrearsTotal(BigDecimal arrearsTotal) {
        this.arrearsTotal = arrearsTotal;
    }

    public BigDecimal getArrearsDueC() {
        return arrearsDueC;
    }

    public void setArrearsDueC(BigDecimal arrearsDueC) {
        this.arrearsDueC = arrearsDueC;
    }

    public BigDecimal getArrearsDueI() {
        return arrearsDueI;
    }

    public void setArrearsDueI(BigDecimal arrearsDueI) {
        this.arrearsDueI = arrearsDueI;
    }

    public BigDecimal getArrearsDueA() {
        return arrearsDueA;
    }

    public void setArrearsDueA(BigDecimal arrearsDueA) {
        this.arrearsDueA = arrearsDueA;
    }

    public BigDecimal getArrearsDueX() {
        return arrearsDueX;
    }

    public void setArrearsDueX(BigDecimal arrearsDueX) {
        this.arrearsDueX = arrearsDueX;
    }

    public BigDecimal getArrearsDueF() {
        return arrearsDueF;
    }

    public void setArrearsDueF(BigDecimal arrearsDueF) {
        this.arrearsDueF = arrearsDueF;
    }

    public BigDecimal getArrearsDueS() {
        return arrearsDueS;
    }

    public void setArrearsDueS(BigDecimal arrearsDueS) {
        this.arrearsDueS = arrearsDueS;
    }

    public BigDecimal getRemitAmt() {
        return remitAmt;
    }

    public void setRemitAmt(BigDecimal remitAmt) {
        this.remitAmt = remitAmt;
    }

    public BigDecimal getArrearsDueTotal() {
        return arrearsDueTotal;
    }

    public void setArrearsDueTotal(BigDecimal arrearsDueTotal) {
        this.arrearsDueTotal = arrearsDueTotal;
    }

    public BigDecimal getPaymentC() {
        return paymentC;
    }

    public void setPaymentC(BigDecimal paymentC) {
        this.paymentC = paymentC;
    }

    public BigDecimal getPaymentI() {
        return paymentI;
    }

    public void setPaymentI(BigDecimal paymentI) {
        this.paymentI = paymentI;
    }

    public BigDecimal getPaymentA() {
        return paymentA;
    }

    public void setPaymentA(BigDecimal paymentA) {
        this.paymentA = paymentA;
    }

    public BigDecimal getPaymentX() {
        return paymentX;
    }

    public void setPaymentX(BigDecimal paymentX) {
        this.paymentX = paymentX;
    }

    public BigDecimal getPaymentF() {
        return paymentF;
    }

    public void setPaymentF(BigDecimal paymentF) {
        this.paymentF = paymentF;
    }

    public BigDecimal getPaymentS() {
        return paymentS;
    }

    public void setPaymentS(BigDecimal paymentS) {
        this.paymentS = paymentS;
    }

    public BigDecimal getActualRepaymentAmt() {
        return actualRepaymentAmt;
    }

    public void setActualRepaymentAmt(BigDecimal actualRepaymentAmt) {
        this.actualRepaymentAmt = actualRepaymentAmt;
    }

    public Integer getOverdueDay() {
        return overdueDay;
    }

    public void setOverdueDay(Integer overdueDay) {
        this.overdueDay = overdueDay;
    }

    public BigDecimal getInterestDiscountAmt() {
        return interestDiscountAmt;
    }

    public void setInterestDiscountAmt(BigDecimal interestDiscountAmt) {
        this.interestDiscountAmt = interestDiscountAmt;
    }

    public String getUpdateSrlno() {
        return updateSrlno;
    }

    public void setUpdateSrlno(String updateSrlno) {
        this.updateSrlno = updateSrlno;
    }

    public Date getActualRepaymentTime() {
        return actualRepaymentTime;
    }

    public void setActualRepaymentTime(Date actualRepaymentTime) {
        this.actualRepaymentTime = actualRepaymentTime;
    }

    public BigDecimal getUnacctRepayAmt() {
        return unacctRepayAmt;
    }

    public void setUnacctRepayAmt(BigDecimal unacctRepayAmt) {
        this.unacctRepayAmt = unacctRepayAmt;
    }

    public BigDecimal getGuaranteeAmt() {
        return guaranteeAmt;
    }

    public void setGuaranteeAmt(BigDecimal guaranteeAmt) {
        this.guaranteeAmt = guaranteeAmt;
    }

    public Integer getIsCompensated() {
        return isCompensated;
    }

    public void setIsCompensated(Integer isCompensated) {
        this.isCompensated = isCompensated;
    }

    public Integer getIsBuyBack() {
        return isBuyBack;
    }

    public void setIsBuyBack(Integer isBuyBack) {
        this.isBuyBack = isBuyBack;
    }

    public String getPayee() {
        return payee;
    }

    public void setPayee(String payee) {
        this.payee = payee;
    }

    public Date getCompensatoryTime() {
        return compensatoryTime;
    }

    public void setCompensatoryTime(Date compensatoryTime) {
        this.compensatoryTime = compensatoryTime;
    }

    public Date getBuyBackTime() {
        return buyBackTime;
    }

    public void setBuyBackTime(Date buyBackTime) {
        this.buyBackTime = buyBackTime;
    }

    public Date getDatModify() {
        return datModify;
    }

    public void setDatModify(Date datModify) {
        this.datModify = datModify;
    }

    public BigDecimal getActualShouldInterestAmt() {
        return actualShouldInterestAmt;
    }

    public void setActualShouldInterestAmt(BigDecimal actualShouldInterestAmt) {
        this.actualShouldInterestAmt = actualShouldInterestAmt;
    }

    public BigDecimal getActualShouldGuaranteeAmt() {
        return actualShouldGuaranteeAmt;
    }

    public void setActualShouldGuaranteeAmt(BigDecimal actualShouldGuaranteeAmt) {
        this.actualShouldGuaranteeAmt = actualShouldGuaranteeAmt;
    }

    public BigDecimal getXxyGuaranteeAmt() {
        return xxyGuaranteeAmt;
    }

    public void setXxyGuaranteeAmt(BigDecimal xxyGuaranteeAmt) {
        this.xxyGuaranteeAmt = xxyGuaranteeAmt;
    }

    public BigDecimal getActualShouldXxyGuaranteeAmt() {
        return actualShouldXxyGuaranteeAmt;
    }

    public void setActualShouldXxyGuaranteeAmt(BigDecimal actualShouldXxyGuaranteeAmt) {
        this.actualShouldXxyGuaranteeAmt = actualShouldXxyGuaranteeAmt;
    }

    public BigDecimal getPureInterestAmt() {
        return pureInterestAmt;
    }

    public void setPureInterestAmt(BigDecimal pureInterestAmt) {
        this.pureInterestAmt = pureInterestAmt;
    }

    public BigDecimal getActualShouldPureInterestAmt() {
        return actualShouldPureInterestAmt;
    }

    public void setActualShouldPureInterestAmt(BigDecimal actualShouldPureInterestAmt) {
        this.actualShouldPureInterestAmt = actualShouldPureInterestAmt;
    }

    public BigDecimal getActualShouldPrincAmt() {
        return actualShouldPrincAmt;
    }

    public void setActualShouldPrincAmt(BigDecimal actualShouldPrincAmt) {
        this.actualShouldPrincAmt = actualShouldPrincAmt;
    }

    public BigDecimal getArrearsC() {
        return arrearsC;
    }

    public void setArrearsC(BigDecimal arrearsC) {
        this.arrearsC = arrearsC;
    }

    public BigDecimal getArrearsI() {
        return arrearsI;
    }

    public void setArrearsI(BigDecimal arrearsI) {
        this.arrearsI = arrearsI;
    }

    public BigDecimal getArrearsG() {
        return arrearsG;
    }

    public void setArrearsG(BigDecimal arrearsG) {
        this.arrearsG = arrearsG;
    }

    public BigDecimal getArrearsH() {
        return arrearsH;
    }

    public void setArrearsH(BigDecimal arrearsH) {
        this.arrearsH = arrearsH;
    }

    public BigDecimal getArrearsJ() {
        return arrearsJ;
    }

    public void setArrearsJ(BigDecimal arrearsJ) {
        this.arrearsJ = arrearsJ;
    }

    public BigDecimal getArrearsS() {
        return arrearsS;
    }

    public void setArrearsS(BigDecimal arrearsS) {
        this.arrearsS = arrearsS;
    }

    public BigDecimal getArrearsDueG() {
        return arrearsDueG;
    }

    public void setArrearsDueG(BigDecimal arrearsDueG) {
        this.arrearsDueG = arrearsDueG;
    }

    public BigDecimal getArrearsDueJ() {
        return arrearsDueJ;
    }

    public void setArrearsDueJ(BigDecimal arrearsDueJ) {
        this.arrearsDueJ = arrearsDueJ;
    }

    public BigDecimal getArrearsDueH() {
        return arrearsDueH;
    }

    public void setArrearsDueH(BigDecimal arrearsDueH) {
        this.arrearsDueH = arrearsDueH;
    }

    public BigDecimal getPaymentG() {
        return paymentG;
    }

    public void setPaymentG(BigDecimal paymentG) {
        this.paymentG = paymentG;
    }

    public BigDecimal getPaymentH() {
        return paymentH;
    }

    public void setPaymentH(BigDecimal paymentH) {
        this.paymentH = paymentH;
    }

    public BigDecimal getPaymentJ() {
        return paymentJ;
    }

    public void setPaymentJ(BigDecimal paymentJ) {
        this.paymentJ = paymentJ;
    }

    public BigDecimal getRemitAmtA() {
        return remitAmtA;
    }

    public void setRemitAmtA(BigDecimal remitAmtA) {
        this.remitAmtA = remitAmtA;
    }

    public BigDecimal getRemitAmtF() {
        return remitAmtF;
    }

    public void setRemitAmtF(BigDecimal remitAmtF) {
        this.remitAmtF = remitAmtF;
    }

    public BigDecimal getRemitAmtG() {
        return remitAmtG;
    }

    public void setRemitAmtG(BigDecimal remitAmtG) {
        this.remitAmtG = remitAmtG;
    }

    public BigDecimal getRemitAmtH() {
        return remitAmtH;
    }

    public void setRemitAmtH(BigDecimal remitAmtH) {
        this.remitAmtH = remitAmtH;
    }

    public BigDecimal getRemitAmtI() {
        return remitAmtI;
    }

    public void setRemitAmtI(BigDecimal remitAmtI) {
        this.remitAmtI = remitAmtI;
    }

    public BigDecimal getRemitAmtJ() {
        return remitAmtJ;
    }

    public void setRemitAmtJ(BigDecimal remitAmtJ) {
        this.remitAmtJ = remitAmtJ;
    }

    public BigDecimal getRemitAmtS() {
        return remitAmtS;
    }

    public void setRemitAmtS(BigDecimal remitAmtS) {
        this.remitAmtS = remitAmtS;
    }

    public BigDecimal getRemitAmtX() {
        return remitAmtX;
    }

    public void setRemitAmtX(BigDecimal remitAmtX) {
        this.remitAmtX = remitAmtX;
    }
}